Código Validação CPF com Funções

Abaixo temos o código de validação do CPF

import java.util.Scanner;

public class App {

    public static void main(String[] args) {

        String cpf;
        int numero1, numero2, numero3, numero4, numero5, numero6, numero7, numero8, numero9;
        int somaPrimeiroDigitoVerificador, somaSegundoDigitoVerificador;
        int primeiroDigitoVerificador, segundoDigitoVerificador;

        Scanner teclado = new Scanner(System.in);

        System.out.print("Digite o seu cpf: ");
        cpf = teclado.nextLine();

        cpf = removerFormatacaoCPF(cpf);

        numero1 = obterNumeroPosicao(cpf, 0);
        numero2 = obterNumeroPosicao(cpf, 1);
        numero3 = obterNumeroPosicao(cpf, 2);
        numero4 = obterNumeroPosicao(cpf, 3);
        numero5 = obterNumeroPosicao(cpf, 4);
        numero6 = obterNumeroPosicao(cpf, 5);
        numero7 = obterNumeroPosicao(cpf, 6);
        numero8 = obterNumeroPosicao(cpf, 7);
        numero9 = obterNumeroPosicao(cpf, 8);

        somaPrimeiroDigitoVerificador = (numero1 * 10) + (numero2 * 9) + (numero3 * 8) + (numero4 * 7) + (numero5 * 6) + (numero6 * 5) + (numero7 * 4) + (numero8 * 3) + (numero9 * 2);

        primeiroDigitoVerificador = calcularDigitoVerificador(somaPrimeiroDigitoVerificador);

        somaSegundoDigitoVerificador = (numero1 * 11) + (numero2 * 10) + (numero3 * 9) + (numero4 * 8) + (numero5 * 7) + (numero6 * 6) + (numero7 * 5) + (numero8 * 4) + (numero9 * 3) + (primeiroDigitoVerificador * 2);

        segundoDigitoVerificador = calcularDigitoVerificador(somaSegundoDigitoVerificador);

        switch (cpf) {
            case "00000000000":
            case "11111111111":
            case "22222222222":
            case "33333333333":
            case "44444444444":
            case "55555555555":
            case "66666666666":
            case "77777777777":
            case "88888888888":
            case "99999999999":
                System.out.print("CPF Inválido");
                break;
            default:

                if (obterNumeroPosicao(cpf, 9) == primeiroDigitoVerificador && obterNumeroPosicao(cpf, 10) == segundoDigitoVerificador) {
                    System.out.print("CPF Válido");
                } else {
                    System.out.print("CPF Inválido");
                }

                break;
        }

        teclado.close();

    }

    static int calcularDigitoVerificador(int soma) {
        int resto = soma % 11;
        int dv;

        if (resto < 2) {
            dv = 0;
        } else {
            dv = 11 - resto;
        }

        return dv;
    }

    static int obterNumeroPosicao(String str, int posicao) {
        // quando e realizado uma subtracao entre dois chars
        // ocorre a subtracao dos respectos codigos ascii.
        // quando subrairmos - '0' teremos a diferente entre o
        // numero e o 0
        return (str.charAt(posicao) - '0');
    }

    static String removerFormatacaoCPF(String cpf) {
        cpf = cpf.replace(".", "");
        cpf = cpf.replace("-", "");

        return cpf;
    }

}